import configparser
import os

def update_binary_file(config_file):
    # 读取配置文件
    config = configparser.ConfigParser()
    config.read(config_file)

    # 获取输入和输出文件的路径
    input_file = config.get("file_paths", "input_file")
    output_file = config.get("file_paths", "output_file")

    # 获取版本号
    version_num = config.get("version", "version_number")

    # 将版本号转换为2个字节的16进制字符串
    version_bytes = f"{int(version_num, 16):04x}"

    # 读取输入文件的内容
    with open(input_file, "rb") as f:
        input_data = f.read()

    # 在输入文件的尾部添加2个字节的版本号
    output_data = input_data + bytes.fromhex(version_bytes)
    
    # 修改输出数据的第九个字节为0xFF
    output_data = output_data[:8] + b"\xff" + output_data[9:]

    # 写入输出文件
    with open(output_file, "wb") as f:
        f.write(output_data)

    print("Update binary file success.")

# 测试程序
if __name__ == "__main__":
    config_file = "config.ini"
    update_binary_file(config_file)